package com.ly.heart.service;

import java.util.List;

import com.baomidou.mybatisplus.extension.service.IService;
import com.ly.common.core.domain.AjaxResult;
import com.ly.heart.domain.KingInvoiceReceivableDetailEntity;
import com.ly.heart.domain.dto.KingSaleOutInventoryMaterialQueryDto;

/**
 * 金蝶-发票-应收单/销售开票明细Service接口
 *
 * @author wutao
 * @date 2024-06-26
 */
public interface IKingInvoiceReceivableDetailService extends IService<KingInvoiceReceivableDetailEntity> {
    
    /**
     * 查询金蝶-发票-应收单/销售开票明细
     *
     * @param id 金蝶-发票-应收单/销售开票明细ID
     * @return 金蝶-发票-应收单/销售开票明细
     */
     KingInvoiceReceivableDetailEntity selectKingInvoiceReceivableDetailEntityById(String id);

    /**
     * 查询金蝶-发票-应收单/销售开票明细列表
     *
     * @param kingInvoiceReceivableDetailEntity 金蝶-发票-应收单/销售开票明细
     * @return 金蝶-发票-应收单/销售开票明细集合
     */
     List<KingInvoiceReceivableDetailEntity> selectKingInvoiceReceivableDetailEntityList(KingInvoiceReceivableDetailEntity kingInvoiceReceivableDetailEntity);

    /**
     * 新增金蝶-发票-应收单/销售开票明细
     *
     * @param kingInvoiceReceivableDetailEntity 金蝶-发票-应收单/销售开票明细
     * @return 结果
     */
    AjaxResult insertKingInvoiceReceivableDetailEntity(KingInvoiceReceivableDetailEntity kingInvoiceReceivableDetailEntity);

    /**
     * 修改金蝶-发票-应收单/销售开票明细
     *
     * @param kingInvoiceReceivableDetailEntity 金蝶-发票-应收单/销售开票明细
     * @return 结果
     */
     int updateKingInvoiceReceivableDetailEntity(KingInvoiceReceivableDetailEntity kingInvoiceReceivableDetailEntity);

    /**
     * 批量删除金蝶-发票-应收单/销售开票明细
     *
     * @param ids 需要删除的金蝶-发票-应收单/销售开票明细ID
     * @return 结果
     */
     int deleteKingInvoiceReceivableDetailEntityByIds(String[] ids);

    /**
     * 删除金蝶-发票-应收单/销售开票明细信息
     *
     * @param id 金蝶-发票-应收单/销售开票明细ID
     * @return 结果
     */
     int deleteKingInvoiceReceivableDetailEntityById(String id);

    /**
     * 累计应收数量,累计应收价税合计
     * @param queryDto
     * @return
     */
     KingInvoiceReceivableDetailEntity selectReceivableSumByOutStorageNo(KingSaleOutInventoryMaterialQueryDto queryDto);
}
